home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok20.lha / ComplexLib / txt / FFPComplexInOut.mod < prev    next >
Text File  |  1993-08-15  |  2KB  |  82 lines

  1.  
  2.  
  3. (*********************************************************************
  4.  
  5.     :Program.       FFPComplexInOut.mod
  6.     :Author.        Gary Struhlik  
  7.     :Address.    -
  8.     :Phone.      -
  9.     :shortcut.      [gs]
  10.     :Version.       1.0   
  11.     :Date.          22.10.1988
  12.     :Copyright.  PD
  13.     :Language.      Modula-II
  14.     :Translator. M2Amiga
  15.     :Imports.     FFPComplexLib [gs]
  16.     :UpDate.     -
  17.     :Contents.     Ein- Ausgabe für komplexe Zahlen
  18.     :Remark.     Für den Amiga Modula-2 Klub / Stuttgart
  19.     :Remark.     Am 01.01.1989 mit M2Amiga 3.2d neu kompiliert
  20.  
  21. **********************************************************************)
  22.  
  23. IMPLEMENTATION MODULE FFPComplexInOut;
  24.  
  25. FROM SYSTEM IMPORT FFP;
  26. FROM FFPComplexLib IMPORT FFPCOMPLEX,cpol,crec;
  27. IMPORT FFPInOut; 
  28. FROM InOut IMPORT WriteLn,WriteString; 
  29. FROM FFPConversions IMPORT RealToStr;
  30.   
  31. PROCEDURE WriteComplex( A : FFPCOMPLEX; m,n : INTEGER; expo,pol : BOOLEAN );
  32. VAR
  33.     s1,s2 : ARRAY [0..79] OF CHAR;
  34.         logo : BOOLEAN;
  35.         x : FFP;
  36.         Y : FFPCOMPLEX;
  37. BEGIN
  38.    IF NOT pol THEN
  39.     x:=ABS(A.IM);
  40.     RealToStr(A.RE,s1,m,n,expo,logo);
  41.     RealToStr(x,s2,m,n,expo,logo);
  42.     IF A.IM >= 0.0 THEN 
  43.           WriteString(s1); WriteString('+j'); WriteString(s2)
  44.         ELSE
  45.           WriteString(s1); WriteString('-j'); WriteString(s2)
  46.         END
  47.    ELSE
  48.         cpol(Y,A); (* A in Polarform umwandeln *) 
  49.         RealToStr(Y.RE,s1,m,n,expo,logo);
  50.         RealToStr(Y.IM,s2,m,n,expo,logo);
  51.         WriteString(s1); WriteString(' <'); WriteString(s2) 
  52.    END
  53. END WriteComplex;  
  54.  
  55. PROCEDURE ReadComplex( VAR A : FFPCOMPLEX; pol : BOOLEAN);
  56. VAR
  57.     X : FFPCOMPLEX;
  58. BEGIN
  59.      IF NOT pol THEN
  60.     FFPInOut.ReadReal(A.RE); FFPInOut.ReadReal(A.IM)
  61.      ELSE
  62.         FFPInOut.ReadReal(A.RE); FFPInOut.ReadReal(A.IM);
  63.         crec(A,A)
  64.      END   
  65. END ReadComplex;        
  66.  
  67. PROCEDURE WriteReal( x : FFP; m,n : INTEGER; expo : BOOLEAN);
  68. VAR
  69.     s : ARRAY [0..79] OF CHAR;
  70.         logo : BOOLEAN;
  71. BEGIN
  72.     RealToStr(x,s,m,n,expo,logo);
  73.         WriteString(s)
  74. END WriteReal;
  75.  
  76. PROCEDURE ReadReal( VAR x : FFP);
  77. BEGIN
  78.     FFPInOut.ReadReal(x)
  79. END ReadReal;                        
  80.  
  81. END FFPComplexInOut.
  82.